package frontend.parser.syntaxtree;

import frontend.parser.syntaxtree.symbol.NonTerminalSymbol;
import frontend.parser.syntaxtree.symbol.TerminalSymbol;

import java.util.function.Consumer;

/**
 * 结点类
 *
 * @author 杨凯伟
 * @date 2024/10/14
 */
public abstract class SyntaxNode {
    /**
     * 遍历语法树
     *
     * @param terConsumer    处理终结符方法
     * @param nonTerConsumer 处理非终结符方法
     */
    public abstract void walk(Consumer<TerminalSymbol> terConsumer, Consumer<NonTerminalSymbol> nonTerConsumer);

    public abstract String getType();
}
